The present invention relates generally to communication systems, and more particularly to providing redundancy for multicast streams in a multicast communication system.
In today""s information age, communication networks are often used for transporting information from an information provider to one or more information consumers.
One technique for transporting information from an information provider to a group of information consumers over the communication network is known as xe2x80x9cmulticasting.xe2x80x9d Multicasting is a well-know method of transmitting information to selected groups of users across a network, such as the Internet. For example, the transmission of an e-mail message to a group of users, each user being listed on a mailing list, may use multicasting principles. Video conferencing and teleconferencing may also use multicasting principles and, accordingly, are often referred to as xe2x80x9cmulti-conferencing.xe2x80x9d Multicasting allows the information provider (referred to hereinafter as a xe2x80x9cmulticast sourcexe2x80x9d) to transmit a single unit of multicast information (referred to hereinafter as a xe2x80x9cmulticast packetxe2x80x9d) simultaneously to all information consumers (referred to hereinafter individually as a xe2x80x9cmulticast hostxe2x80x9d and collectively as xe2x80x9cmulticast hostsxe2x80x9d) in the multicast group, specifically by addressing the multicast packet to the multicast group using a multicast address. The multicast hosts monitor the communication network for multicast packets addressed to the multicast group.
In order to distribute multicast packets from a particular multicast source S to the multicast hosts for a particular multicast group G, the multicast packet is routed through the communication network by a number of routers. The communication network may include multiple routing domains, and therefore the multicast packet may traverse multiple routing domains. Each router runs various routing protocols to determine, among other things, a xe2x80x9cnext hopxe2x80x9d for each packet based upon address information in the packets. Such routing information is used to establish a multicast distribution tree, and is maintained by each router in one or more routing tables (often referred to as a xe2x80x9crouting information basexe2x80x9d). Due to the increased demand for applications utilizing multicasting principles, protocols such as the Internet Group Multicast Protocol (xe2x80x9cIGMPxe2x80x9d) have been developed and refined to support multicasting over a Transmission Control Protocol/Internet Protocol (xe2x80x9cTCP/IPxe2x80x9d) network, such as the Internet. The new protocols, such as IGMP, allow users to easily create and join multicasting session (xe2x80x9cmulticastsxe2x80x9d).
Typically, multicast networks are configured to communicate provider information from multiple providers to multicast clients over a single primary communications link. To provide redundancy, multicast networks are also connected to the multicast clients via a backup link as well so that, in the event of a failure in the primary link, the network will switch-over to the backup link to communicate the provider information.
One problem with the redundancy feature in the typical multicast network is that there is no provision made for a failure in a network provider which is unrelated to a link failure but which terminates the communication of provider information to the multicast clients. This can happen, for example, from the failure of one of the routers used to distribute multicast packets containing provider information to the multicast hosts. Because the network fails to detect a link failure, the switch-over to the backup link is not performed, resulting in the provider information not being communicated to the multicast clients.
Thus, a technique for providing redundancy in a multicast network in the event of a failure other than a link failure is needed.
In accordance with one aspect of the present invention, a networking device joins a multicast group over a primary interface. Joining the multicast group over the primary interface enables the networking device to receive multicast group information (i.e., a multicast stream) over the primary interface. The networking device monitors for multicast group information received over the primary interface. The networking device determines that there is a failure if no multicast group information is received over the primary interface for a predetermined amount of time. Upon detecting such a failure, the networking device typically joins the multicast group over a backup interface in order to continue receiving the multicast group information over the backup interface.
According to another aspect of the invention, the networking device receives a request from a multicast host to become a member of a multicast group and joins the multicast group over the primary interface on behalf of the multicast host. Upon determining that no information from the multicast group is received for a period of time over the primary interface, the networking device joins the multicast group over the backup interface on behalf of the multicast host to receive the information. The networking device remains joined to the multicast group over the primary interface on behalf of the multicast host and leaves the backup interface upon determining that the information is once again being received over the primary interface.